package com.example.aopdemo.apect;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * 优先级练习
 */

@Aspect
//@Component
@Slf4j
@Order(1)
//@Component
public class ApectDemo4 {
    // 定义公共切点
    @Pointcut("execution(* com.example.aopdemo.controller.*.*(..))")
    private void pt(){}
    // 环绕通知

    // 后置通知
    @After("execution(* com.example.aopdemo.controller.*.*(..))")
    public void doAfter() {
        log.info("AppectDemo4 执行After方法");
    }
    // 前置通知
    @Before("pt()")
    public void doBefore() {
        log.info("AppectDemo4 执行 Before 方法.....");
    }
}
